草庐IT

Where 条件

全部标签

mongodb - 如何在 Mongo 中获取 "(WHERE) column = column"?

我喜欢Mongo做简单的事情,所以我希望用它来做更高级的事情。在我需要这个之前,它工作得很好:UPDATEtblSETa=bWHEREc0a=b部分是我想不通的。我试过mongodb.org,但在那里找不到。我也找过WHEREa=b但我也找不到。另一种方法是获取所有行然后单独更新它们,但我不喜欢那样。它必须更简单。谢谢。 最佳答案 您想检查文档以进行更新。http://www.mongodb.org/display/DOCS/Updating您的代码可能如下所示:db.tbl.update({c:{$ne:0}},{$set:{a:

MongoDb 查询 - 计数 + where 条件

我有一个mongodb集合,其中包含带有标签和日期字段的集合。我想统计这个查询可以完成的所有标签的数量db.collection.count({tags:"abc"})但我想统计所有唯一标签的数量。而且我还想在日期上放置一个where条件,例如我想查询某个时间段。 最佳答案 一个非常简单的方法:db.collection.distinct("tags",{dateField:{$gt:dateValue}}).forEach(function(tag){varcount=db.collection.count({"tags":tag

mongodb - 有条件地评估要返回的数组元素

考虑到以下数据,我想在MongoDB的数组字段中返回要从默认文档中选择的ID的结果。我们将该集合称为books。示例采集数据如下所示:[{name:"Book1",refs:[{oid:"object1"},{oid:"object2"},{oid:"object5",default:true}]},{name:"Book2",refs:[{oid:"object3"},{oid:"object5",default:true},{oid:"object7"}]},{name:"Book3",refs:[{oid:"object4"},{oid:"object2"}]},{name:"B

java - 如何在 MongoDB(Java) 中使用搜索条件(在我的例子中是电子邮件)检索单个字段(在我的例子中是密码)?

这是我尝试过的:BasicDBObjectsearchQuery=newBasicDBObject();searchQuery.put("email",email_id);DBCursorcursor=collection.find(searchQuery);Stringusr=null;Stringpass=null;while(cursor.hasNext()){usr=(String)cursor.next().get("username");pass=(String)cursor.next().get("password");}我正在获取记录中存在的用户名值。但密码返回空值。

python - MongoDB 使用 $push 更新匹配条件的数组元素

我第一次同时使用Python和Mongo,但在文档中我找不到我需要的东西。所以我的数据对象看起来像这样{"_id":ObjectId("54d372597d74523bc6991b9b"),"id_user":"2000001","date_registrated":"2015-01-2112:11:28.185","user":"Bogdan","gender":"M","email":"a@a.com","charachters":[{"quest_info":"TUT_var,1421842359STARTAREA,4","char_name":"Testarion"}]}我想在

node.js - MongoDb 全文搜索和条件

我尝试在mongodb中使用文本索引:{$text:{$search:'sporthockey'}}是使用OR条件按短语搜索:'sport'OR'hockey'。例如,结果可以是以下标题列表:今天做点运动……运动是曲棍球曲棍球运动员最相关的文档位于第二位(实际上我想排除除此以外的所有其他结果:'Sportishockey')。是否可以在$text中使用AND条件?引号不合适,因为{$text:{$search:"\"sporthockey\""}}使用完全匹配搜索。 最佳答案 尝试在您的输出中包含textScore,然后对其进行排序

mongodb - 如何在 Mongodb 中的查询评估条件表达式中使用字段?

在Mongodb中,我有一个任务集合,其中包含以下字段以及其他25个字段1.timeToLive-holdsthenumberofminutes2.createdDate-holdstheISODate我需要编写一个查询,它将只返回未过期的任务。我正在尝试以下操作:db.tasks.find({"timeToLive":{$gt:((newDate().getTime()-createdDate)/60000)}},{_id:1,createdDate:1,timeToLive:1})问题是mongo无法将$gt表达式中的createdDate识别为文档中的字段。我收到以下错误:201

javascript - 使用 _id 为日期查询条件

我知道_id字段可以转换成日期。这是函数:ObjectId.prototype.getTimestamp=function(){returnnewDate(parseInt(this.toString().slice(0,8),16)*1000);}然后我可以使用doc._id.getTimestamp();来显示文档的创建日期时间。问题是,文档只有与日期相关的_id字段。我的问题是:如何只通过_id查询特定日期范围内的文档? 最佳答案 您可以使用$where它将JavaScript发送到服务器以进行查询。但是忘记原型(protot

mongodb - 按值和条件分组

对mongo很陌生,在解决这个问题时遇到了一些麻烦。我有这样的收藏{"_id":"PN89dNYYkBBmab3uH","card_id":1,"vote":1,"time":1437700845154}{"_id":"Ldz7N5syeW2SXtQzP","card_id":1,"vote":1,"time":1437700846035}{"_id":"v3XWHHvFSHwYxxk6H","card_id":1,"vote":2,"time":1437700849817}{"_id":"eehcDaCyTdz6Yd2a9","card_id":2,"vote":1,"time":1

regex - 具有计数和条件 mongoDB 的不同值

我是MongoDB的新手,到目前为止,它似乎正试图摆脱让简单的事情变得过于复杂的方式。我正在尝试运行以下MYSQL等价物SELECTuserid,COUNT(*)FROMuserinfoWHEREuserdatalike'%PC%oruserdatalike'%wire%'GROUPBYuserid我有mongo版本3.0.4,我正在运行MongoChef。我尝试使用类似下面的东西:db.userinfo.group({"key":{"userid":true},"initial":{"countstar":0},"reduce":function(obj,prev){prev.cou